#include<vector>
#include<list>
#include<deque>

using namespace::std;

namespace dt
{
    template<class T, class Container = deque<T>>
    class stack
    {
    public:
        void push(int x)
        {
            _con.push_back(x);
        }

        void pop()
		{
			_con.pop_back();
		}

		const T& top()
		{
			return _con.back();
		}

		bool empty()
		{
			return _con.empty();
		}

		size_t size()
		{
			return _con.size();
		}
    private:
        Container _con;
    };
}